/**
 * 网络请求响应处理模块
 */
layui.define(['table', 'base'], function(exports){
	var table 	= layui.table
		,base 	= layui.base
		,common;
		
	// 加载语言包
	if('undefined' == typeof LANG) base.loadLang();
	
	// 网络服务API
	var network_api = {
		/**
		 * 初始化
		 */
		initialize: function(){
			// 加载  common 模块
			if(!base.isset(common)){
				layui.use('common');
				common = layui.common;
			}
		},
		// 配置
		config: {
			// 分页配置
			page: {
				limit: 20,		// 每页显示记录数
				limits: [20, 40, 60, 80, 100],  // 下来选择一页显示记录
				first: LANG.TEMPLATE.CONTENT.PAGE_FIRST,	// 首页
				last: LANG.TEMPLATE.CONTENT.PAGE_LAST,		// 尾页
				//prev: LANG.TEMPLATE.CONTENT.PAGE_PREV,		// 上一页
				//next: LANG.TEMPLATE.CONTENT.PAGE_NEXT,		// 下一页
				groups: 10,		// 连续出现的页码数
				layout: ['count', 'prev', 'page', 'next', 'skip', 'limit']	// 工具条布局
			}
		},
		// 网络请求
		request: {
			
			
			// request 方法列表...
		},
		// 网络响应
		response: {
			// 首页模型
			index: {
				// 首页
				home: function(response){
					// 初始化模块
					network_api.initialize();
					
					common.initialize(response);
					base.template('tpl-index-home',{
						test: "首页测试...."
					});
				},
			},
			// 权限节点
			node: {
				user: function(response){
					console.log(response);
				},
				// 节点列表
				index: function(response){
					// 初始化模块
					network_api.initialize();
					
					// 初始化
					common.initialize(response);
					
					// 渲染表格数据
					var t = table.render({
						// 表格元素ID
						elem: '#list',
						url: base.get_api_url(CONFIG.URL_MAP.NODE.INDEX),
						// 表格标题
						cols:[[
							{field:'id', title:LANG.TEMPLATE.NODE.INDEX_TABLE_HEAD.ID, width:60, sort:true},		// ID
							{field:'icon_name_str', title:LANG.TEMPLATE.NODE.INDEX_TABLE_HEAD.ICON, width:60, align:'center'},		// 图标
							{field:'title', title:LANG.TEMPLATE.NODE.INDEX_TABLE_HEAD.TITLE, width:170},		// 规则标题
							{field:'sys_type_name', title:LANG.TEMPLATE.NODE.INDEX_TABLE_HEAD.SYS_TYPE, width:90},	// 所属系统
							{field:'pid_name', title:LANG.TEMPLATE.NODE.INDEX_TABLE_HEAD.PID, width:170},		// 上级节点
							{field:'pid_path_name', title:LANG.TEMPLATE.NODE.INDEX_TABLE_HEAD.PID_PATH, width:289},		// 节点路径
							{field:'name', title:LANG.TEMPLATE.NODE.INDEX_TABLE_HEAD.NAME, width:280},		// 规则名称
							{field:'type_name', title:LANG.TEMPLATE.NODE.INDEX_TABLE_HEAD.TYPE, width:80},		// 类型
							{field:'condition', title:LANG.TEMPLATE.NODE.INDEX_TABLE_HEAD.CONDITION, width:60},		// 附加条件
							{field:'status_name', title:LANG.TEMPLATE.NODE.INDEX_TABLE_HEAD.STATUS, width:60},		// 状态
							{field:'is_show_name', title:LANG.TEMPLATE.NODE.INDEX_TABLE_HEAD.IS_SHOW, width:60},		// 是否显示
							{field:'sort', title:LANG.TEMPLATE.NODE.INDEX_TABLE_HEAD.SORT, width:80, sort:true},		// 排序
							{field:'operation', title:LANG.TEMPLATE.NODE.INDEX_TABLE_HEAD.OPERATION,width:200, toolbar: '#toolbar'}		// 操作
						]],
						// 分页
						page: network_api.config.page
					});
					
					//监听工具条
					table.on('tool(nodelist)', function(obj){
						// 行数据
						var row_data = obj.data;
						// 操作
						switch(obj.event){
							// 查看详情
							case 'detail':
								layer.msg('ID：'+ row_data.id + ' 的查看操作');
							break;
							// 编辑
							case 'edit':
								layer.alert("编辑"+JSON.stringify(row_data));
							break;
							// 删除
							case 'del':
								layer.confirm("确定要删除吗？删除后数据不可恢复！", function(index){
									console.log(index);
									// 关闭确认框
									layer.close(index);
								});
							break;
						}
					});
				}
			}
			
			// response 方法列表...
		},
		
		/**
		 * 模板渲染
		 * @param String tpl_id				模板ID
		 * @param Object tpl_data			模板数据
		 * @param String tpl_block_id		模板块ID
		 */
		template: function(tpl_id=null, tpl_data, tpl_block_id=null){
			if(tpl_id == null){
				return false;
			}
			
			// 模板ID
			var tpl_id 		= (tpl_id != null && tpl_id != '') ? tpl_id : '';
			// 模板输出ID
			var block_id 	= (tpl_block_id != null && tpl_block_id != '') ? tpl_block_id : 'main_content';
			// 模板数据
			var tpl_data 	= ('object' == typeof tpl_data) ? tpl_data : {};
			// 渲染语言包
			if('undefined' == typeof LANG){
				var now_lang = localStorage.now_lang ? localStorage.now_lang : 'zh-cn';
				var tag = '<script type="text/javascript" src="/Web-Statics/js/langs/'+now_lang+'.js"></script>';
				$('body').append(tag);
			}
			tpl_data.LANG = LANG;
			
			// 编译模板
			var tpl_html = template(tpl_id, tpl_data);
			// 渲染模板
			document.getElementById(block_id).innerHTML = tpl_html;
		}
		
		// network 方法列表 ...
	};
	
	// 输出响应模型
	exports('network', network_api);
});

